package com.xunlai.infra.permission.manager.web.service;

import com.xunlai.infra.permission.common.exception.PermissionBusinessException;
import com.xunlai.infra.permission.manager.web.vo.*;
import com.xunlai.infra.permission.manager.web.vo.role.*;

import java.util.List;

/**
 * @author liang
 * @date 12/11/22 6:45 PM
 */
public interface RoleService {

    Long createRole(CreateRoleReqVo createRoleReqVo) throws PermissionBusinessException;

    void createRelation(Long roleId,List<CreateRoleRelationVo> createRoleReqVoList) throws PermissionBusinessException;

    void createPermission(Long roleId, List<CreateRolePermissionReqVo> createRolePermissionReqVos) throws PermissionBusinessException;

    void switchEnable(Long roleId,Short enable) throws PermissionBusinessException;

    void changeRoleName(Long roleId,String roleName) throws PermissionBusinessException;

    boolean deleteRole(Long roleId) throws PermissionBusinessException;

    BasePageRespVo<RoleListVo> pageListRole(QueryRoleReqVo queryRoleReqVo , Integer pageNum, Integer pageSize);
}
